package com.mashuai.utils.toolkit.core.msValidation.annotation;

import com.mashuai.utils.toolkit.achieve.MsExegesis;
import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 检查你传入的参数列表，是否值为空，遇到List、Map、Bean等等智慧判断是否为null或size是否为空，不会去判断比如map里面某个key是否为null或者""
 * 优先级>MsCheckObjParams；可以这么理解，我map都是null了，还有必要去检验map里的参数值吗
 */
@MsExegesis("检查你传入的参数列表，是否值为空，遇到List、Map、Bean等等智慧判断是否为null或size是否为空，不会去判断比如map里面某个key是否为null。优先级>MsCheckObjParams")
@Component
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MsCheckParams {

    //排除不需要检验的位置
    @MsExegesis("排除不需要检验的位置")
    int[] excludeIndex() default {};

}
